#ifndef LOGIC_DELETE_H
#define LOGIC_DELETE_H

#include <iostream>
#include <string>
#include <vector>
#include <sstream>

#include "Data.h"
#include "Task.h"
#include "Writer.h"
#include "LogicBase.h"

#include <boost\date_time.hpp>

using namespace std;
using namespace boost::posix_time;
using namespace boost::gregorian;

class LogicDelete : public LogicBase {
public:
	Display deleteTaskByIndex( int index );
	Display deleteDoneTask( bool done );
	Display deleteTaskByString( string searchType );

private:
	Display deleteTaskByName( string taskName );
	Display deleteTaskBySearchTerm( string searchTerm );

	static const string DELETE_SUCCESS_MESSAGE;
	static const string DELETE_DONE_SUCCESS_MESSAGE;
	static const string DELETE_ERROR_MESSAGE;
	static const string DELETE_TYPE_DONE;

	static const int FIRST_POSITION;

	// returns true if matches done keyword and false otherwise
	bool isDeleteByDone(string term);

	// returns true if found in vector and false otherwise
	bool isDeleteByName(string term);

	// returns true if found in vector and false otherwise
	bool isDeleteBySearchTerm(string term);
};
#endif